1. Field of Use
The present invention relates to systems and methods for supporting network communications and more particularly to systems and methods for providing a multihoming capability.
2. Prior Art
As is well known in the art, a computer network is a communication system for connecting end-systems referred to as hosts. An internet or internetwork is the connection of two or more distinct networks so that the computers on one network are able to communicate with computers on another network. One way of connecting two distinct physical networks is to have a gateway that is attached to both networks. The gateway is used to pass information from one network to the other network. In the well-known Open Systems Interconnection (OSI) seven layer network reference model, the term used to describe the interconnection depends on the layer at which the connection takes place. For example, a specific kind of "gateway" called a router typically operates at the third or network layer which is defined as the layer that builds data packets and indicates the type of frame which has been built or must be built by the second or data link layer that controls the movement of data frames and rearranges the data to identify various fields.
The network layer sends data packets to the fourth or transport layer which ensures reliable delivery of data packets by following a specific protocol which adds to the error correction facilities of the lower levels. In the case of the TCP/IP protocol suite, the term gateway refers to a network level router. In the UNIX based systems, a host system may have more than one network connection, possibly employing more than one type of communications interface, as for example, an Ethernet interface and a token ring interface. When a host system is connected to more than one interface thus having more than one IP address, the host system is said to be "multihomed".
A traditional reason for having a system "multihomed" has been for the purpose of operating the system as a router. Such systems are usually small and low in cost. Hence, the more costly, enterprise systems are not typically used to function as routers or gateways. However, it has been noted that there are several other important reasons for an enterprise system to have multihoming capabilities. These reasons are: (1) to allow a host system to communicate with separate networks in certain situations (e.g. for security reasons); (2) to allow a large host system to survive the loss of hardware components in the paths of the communication interface, particularly in those systems which have multiple I/O processors; and, (3) to allow a large host system to have communication bandwidth in excess of the capability of a single communication interface.
In prior art arrangements, the multihomed host system traditionally uses a single stack implementation in which kernel software allows sharing of a single network protocol stack by multiplexing the IP layer (i.e., OSI layer 3). An example of such a multihomed host system in a network router application is described in Chapter 4 of the text entitled "Unix Network Programming" by W. Richard Stevens, copyright 1990 by PTR Prentice Hall. While such arrangements provide the ability to manage different network interfaces, such hosts do not operate as enterprise systems providing multiple network connections which would provide greater capacity and the ability to off-load communications processing.
The ability to off-load communications protocol functions by using front-end processors (FEPs) is particularly advantageous for host systems. An example of this type of system is described in an article entitled "GCOS 8 System Interoperability in Heterogeneous Distributed Networks" by Mort Davis published in Volume 6, No.2 of the Groupe Bull Technical Update, copyright 1996 by Bull HN Information Systems Inc. and Bull S. A.
By way of background, in this type of system, the host system supports applications and performs the functions associated with the presentation and, when applicable, session layers while the FEPs perform the functions associated with the transport, network, link and physical layers. In greater detail, the host system TCP/IP applications request transport services via Sockets or XTI APIs from a TCP/IP Transport Agent, which in turn requests the actual transport services from an FEP actually providing the network access connection. Traditionally, each particular application has been able to only easily use a single IP address, associated with a particular FEP, which provides network access. In the case of a default request or a request to use any or all IP addresses (i.e., in sockets terms "INADDR.sub.-- ANY"), the system had to chose or designate a default FEP and IP address, in fact not honoring the request for "any and all". Hence, this arrangement precludes the use of more than one FEP, unless the application was explicitly coded to access them. Thus, this arrangement is unable to provide full multihoming support. For further information on multihoming, reference may be made to the publications entitled, "Communications Sockets, Sockets Administrator's Guide, GCOS 8", Copyright 1996, Bull HN Information Systems Inc. Publication Number RG44, Rev02, and "Communications SOCKET LIBRARY, Programmer's Guide, Socket Internetworking, GCOS 8", Copyright 1995, Bull HN Information Systems Inc. Publication Number LC02, Rev02.
An additional issue inherent in FEP-based solutions is that FEPs are independent entities from the host system, which can crash or fail independently of the host. Traditionally, applications were very sensitive to FEP failures. For full multihoming support, applications must be isolated from FEP failures as much as possible.
Accordingly, it is a primary object of the present invention to provide a multihoming capability for a host system which can support multiple network connections for providing redundancy and greater capacity, without application involvement. More specifically, it is an object to provide a system which allows full support of the "INADDR.sub.-- ANY" concept on a system with FEPs.
It is a further more specific object of the present invention to provide a multihomed host system which is able to spread communications load between network connections and provide the ability to recover from network connection failures through the use of redundant components and paths.